package cn.exrick.xboot.modules.account.service;

import cn.exrick.xboot.modules.account.entity.Account;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.LinkedList;
import java.util.List;


public interface AccountService extends IService<Account> {
    /**
     * 获得大屏数据本年
     */
    Account getAccountByYear();

    /**
     * 获得大屏数据本月
     */
    Account getAccountByMonth();

    /**
     * 现金流流入排行--本年
     */
    List<Account> getXJLROrderByYear();

    /**
     * 现金流流出排行--本年
     */
    List<Account> getXJLCOrderByYear();

    /**
     * 现金流流入排行--本月
     */
    List<Account> getXJLROrderByMonth();


    /**
     * 应收账款排行--本年
     */
    List<Account> getYSZKOrder();

    /**
     * 应收账款排行--本月
     */
    List<Account> getYSZKOrderByMonth();


    /**
     * 收入确认金额--本年
     * @return
     */
    List<Account> getSRQROrder();

    /**
     * 收入确认金额--本月
     * @return
     */
    List<Account> getSRQROrderByMonth();


    /**
     * 合同签订金额--本年
     * @return
     */
    List<Account> getContractMoney();
    /**
     * 合同签订金额--本月
     * @return
     */
    List<Account> getContractMoneyByMonth();


    /**
     * 现金流情况--本年
     * @return
     */
    LinkedList<Object> getXJLLine();
    /**
     * 现金流情况--本月
     * @return
     */
    LinkedList<Object> getXJLLineByMonth();


    /**
     * 合同签订情况--柱状折线图--本年
     * @return
     */
    LinkedList<Object> getContractInfoLine();
    /**
     * 合同签订情况--柱状折线图--本月
     * @return
     */
    LinkedList<Object> getContractInfoLineByMonth();

    /**
     * 收票开票情况--本年
     * @return
     */
    List<Account> getSPKPOrder();

    /**
     * 收票开票情况--本月
     * @return
     */
    List<Account> getSPKPOrderByMonth();


    /**
     * 现金流情况--折线图-按照时间
     * @return
     */
    LinkedList<Object> getXJLInfoByTime();


    /**
     * 获取二级菜单-单位情况--本年
     * @return
     */
    List<Account> getDeptInfo(Account account6);
    /**
     * 获取二级菜单-单位情况--本月
     * @return
     */
    List<Account> getDeptInfoByMonth(Account account6);
}
